package com.kitwee.serialport.decoder.mitsubishi;


import com.kitwee.serialport.decoder.InstructionDecoder;

/**
 * 三菱FX系统解码器（三菱专用协议）
 */
public class FX3SInstructionDecoder extends InstructionDecoder {

    /**
     * source为32位，前16位代表生产速度D100, 后16位代表生产产量D101
     * 如金永利三菱平刀 丰日三菱专有协议解码器 例: 金永利三菱平刀D180速度协议指令：05 30 30 46 46 57 52 41 44 30 31 38 30 30 31 34 34。
     * 回应：02 30 30 46 46 30 30 36 34 03 41 46。   30 30 36 34的ASCII为0064，16进制即0x0064，十进制显示就是=400，故最终值为100pcs/分钟
     *
     * @author ZGH
     */
    @Override
    public synchronized Object decode(byte[] source) {

        char[] sourceChar = new String(source).toCharArray();

        char[] temp = new char[4];

        for (int i = 0; i < temp.length; i++) {
            temp[i] = sourceChar[i + 5];
        }

        return byteArray2int(asciiTransformByte(temp));
    }

}
